﻿#define _CRT_SECURE_NO_WARNINGS
//#include<iostream>
//#include<string>
//using namespace std;
//
//int main()
//{
//	string strText = "How are you?";
//	string strSeparator = " ";
//	string strResult;
//	int size_pos = 0;
//	int size_prev_pos = 0;
//	while ((size_pos = strText.find_first_of(strSeparator, size_pos)) != string::npos)
//	{
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//		cout << strResult << " ";//How are   
//		size_prev_pos = ++size_pos;//4
//	}
//	if (size_prev_pos != strText.size())
//	{
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//		cout << strResult << " ";
//	}
//	cout << endl;
//	return 0;
//}


//int main(int argc, char* argv[])
//{
//	string a = "hello world";
//	string b = a;
//	if (a.c_str() == b.c_str())
//	{
//		cout << "true" << endl;
//	}
//	else cout << "false" << endl;
//	string c = b;
//	c = "";
//	if (a.c_str() == b.c_str())
//	{
//		cout << "true" << endl;
//	}
//	else cout << "false" << endl;
//	a = "";
//	if (a.c_str() == b.c_str())
//	{
//		cout << "true" << endl;
//	}
//	else cout << "false" << endl;
//
//	return 0;
//}


//下面程序的输出结果正确的是()

//int main()
//{
//	string str("Hello Bit.");
//	str.reserve(111);
//	str.resize(5);
//	str.reserve(50);
//	cout << str.size() << ":" << str.capacity() << endl;
//	
//	return 0;
//}

//int main()
//{
//	string s1("hello world");
//	string s2;
//
//	s2.reserve(111);
//	s2.reserve(50);
//	cout << s2.capacity() << endl;
//
//	return 0;
//}

//int main()
//{
//	string s1("jie jie 2021");
//	string s2(" ");
//	cout << s1.find_first_of(s2) << endl;
//
//	return 0;
//}


//#include<iostream>
//#include<string>
//using namespace std;
//
//int main()
//{
//	string s1;
//	getline(cin, s1);
//	cout << s1 << endl;
//	string s2(" ");
//	int pos = s1.find_last_of(s2);
//	string s3 = s1.substr(pos+1);
//	cout << s3 << endl;
//
//	return 0;
//}

#include<iostream>
#include<string>
using namespace std;


//class Solution {
//public:
//    bool isPalindrome(string s) {
//        string t;
//        int n = s.size();
//        for (int i = 0; i < n; i++)
//        {
//            if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= '0' && s[i] <= '9'))
//            {
//                if (s[i] >= 'A' && s[i] <= 'Z')
//                {
//                    s[i] += 32;
//                }
//                t += s[i];
//            }
//        }
//        int l = 0, r = t.size() - 1;
//        while (l < r)
//        {
//            if (t[l] != t[r])
//            {
//                return false;
//            }
//            l++;
//            r--;
//        }
//        return true;
//    }
//};
//
//int main()
//{
//	string s1 = "PO";
//	Solution p;
//	cout << p.isPalindrome(s1);
//
//	return 0;
//}

//int main()
//{
//	string s1;
//	getline(cin, s1);
//	cout << s1 << endl;
//	string s2;
//	for (auto c : s1)
//	{
//		if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
//		{
//			s2 += c;
//		}
//	}
//	cout << s2 << endl;
//	string s3 = s2;
//	reverse(s3.begin(), s3.end());
//	cout << s3 << endl;
//
//	for (size_t i = 0, j = 0; i < s2.size(),j<s3.size(); i++,j++) 
//	{
//		if (s2[i] == s3[j] || (s2[i] - s3[j]) == ('A' - 'a') || (s2[i] - s3[j]) == ('a' - 'A'))
//		{
//			;
//		}
//		else
//		{
//			return -1;
//		}
//	}
//	return 0;
//}

//class Solution {
//public:
//    string reverseStr(string s, int k) {
//        for (int i = 0; i < s.size(); i += (2 * k)) {
//             1. 每隔 2k 个字符的前 k 个字符进行反转
//             2. 剩余字符小于 2k 但大于或等于 k 个，则反转前 k 个字符
//            if (i + k <= s.size()) {
//                reverse(s.begin() + i, s.begin() + i + k);
//                continue;
//            }
//             3. 剩余字符少于 k 个，则将剩余字符全部反转。
//            reverse(s.begin() + i, s.begin() + s.size());
//        }
//        return s;
//    }
//};
//
//作者：carlsun - 2
//链接：https://leetcode.cn/problems/reverse-string-ii/solution/by-carlsun-2-tkhp/
//来源：力扣（LeetCode）
//著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。




#include<iostream>
#include<string>
using namespace std;

int main()
{
	string s1;
	string s2;
	getline(cin, s1);
	getline(cin, s2);
	auto* p1 = s1.c_str();
	auto* p2 = s2.c_str();
	int tmp = 0;
	int sum = 0;
	int Mul[202] = { 0 };
	string str;
	auto* start1 = p1 + s1.size() - 1;
	auto* start2 = p2 + s2.size() - 1;
	int wei = 0;
	/*cout << *start1 << "-" << *start2;*/
	for (int j = 0; j < s2.size(); j++)
	{
		for (int i = 0; i < s1.size(); i++)
		{
			for (int k = 0; k < wei; k++)
			{
				str.append(0);
			}
			sum = (*start1 - '0') * (*start2 - '0');
			tmp += sum;
			str.append(to_string(tmp % 10));
			tmp /= 10;
			start1--;
		}
		reverse(str.begin(), str.end());

	}
	
	
	return 0;
}